package com.zhentao.recharge.feign;

import com.zhentao.pojo.Result;
import com.zhentao.pojo.TOrder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 * 充值服务Feign客户端降级处理类
 * 
 * @author zhentao
 * @since 2024-08-13
 */
@Slf4j
@Component
public class RechargeFeignFallback implements RechargeFeignClient {

    @Override
    public Result<Object> getRechargeRecords(Integer page, Integer pageSize, Long patientId, Date startDate, Date endDate, String bizType) {
        log.error("充值服务调用失败，触发降级处理 - 分页查询充值记录");
        return Result.error("充值服务暂时不可用，请稍后重试");
    }

    @Override
    public Result<List<TOrder>> getRechargeRecordsByPatientId(Long patientId) {
        log.error("充值服务调用失败，触发降级处理 - 根据患者ID查询充值记录，患者ID：{}", patientId);
        return Result.error("充值服务暂时不可用，请稍后重试");
    }

    @Override
    public Result<TOrder> getRechargeDetail(Integer orderId) {
        log.error("充值服务调用失败，触发降级处理 - 查询充值记录详情，订单ID：{}", orderId);
        return Result.error("充值服务暂时不可用，请稍后重试");
    }

    @Override
    public Result<Boolean> addRechargeRecord(TOrder order) {
        log.error("充值服务调用失败，触发降级处理 - 新增充值记录，订单编号：{}", order.getOrderNumber());
        return Result.error("充值服务暂时不可用，请稍后重试");
    }

    @Override
    public Result<Boolean> updateRechargeRecord(TOrder order) {
        log.error("充值服务调用失败，触发降级处理 - 更新充值记录，订单ID：{}", order.getOrderId());
        return Result.error("充值服务暂时不可用，请稍后重试");
    }

    @Override
    public Result<Boolean> deleteRechargeRecord(Integer orderId) {
        log.error("充值服务调用失败，触发降级处理 - 删除充值记录，订单ID：{}", orderId);
        return Result.error("充值服务暂时不可用，请稍后重试");
    }

    @Override
    public Result<String> health() {
        log.error("充值服务调用失败，触发降级处理 - 健康检查");
        return Result.error("充值服务暂时不可用");
    }
} 